package com.yykj.drup.server.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.yykj.drup.server.form.OrderForm;
import com.yykj.drup.server.model.OrderInfo;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author zengg
 * @since 2022-03-22
 */
public interface OrderInfoService extends IService<OrderInfo> {

    /**
     * 根据OrderForm药店信息插入药店订单信息及订单详情
     * @param orderForm
     * @param orderNumber
     * @return 插入的订单主键ID
     */
    void insertOrderByOrderForm(String orderNumber,OrderForm orderForm);

    /**
     * 根据Order信息插入订单信息
     * @param order
     * @return
     */
    Integer insertOrder(OrderInfo order);

    /**
     * 根据系统订单编号获取药店订单详情列表
     * @param sysOrderNumber 系统订单编号
     * @return
     */
    List<OrderInfo> findStoreOrderBySysOrderId(String sysOrderNumber);

    /**
     * 微分销下单
     * @param orderSysNum 系统总订单号
     */
    void weifenxiaoPlaceOrder(String orderSysNum);

    /**
     * 设置药店订单对于第三方商城订单号
     * @param orderStoreNum 药店订单号
     * @param orgOrderNum 第三方订单编号
     * @return
     */
    Boolean setOrderInfoOrgOrderNum(String orderStoreNum,String orgOrderNum);

    /**
     * 设置订单的物流单号信息
     * orgOrderNum 订单号 第三方订单号
     * expressName 第三方订单快递公司名称
     * expressNo 第三方订单快递单号
     * @return
     */
    Boolean setOrderInfoComNumber(String orgOrderNum,String expressName,String expressNo);

    /**
     * 设置药店物流订单签收状态
     * @param orderComNum
     * @return
     */
    Boolean setOrderInfoComCheck(String orderComNum,String ischeck);

    /**
     * 设置物流订单收货
     */
    void setOrderStatusOK(String orderSysNum);

    /**
     * 设置药店用户订单确认收货
     * @param id 用户订单主键ID
     * @return
     */
    Boolean setOrderInfoCheck(Integer id);
}
